Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lh fix individual read deduplication and limiting #195

Open
wants to merge 95 commits into
base: master
Choose a base branch
from

Conversation

lhotari
Copy link
Owner

@lhotari lhotari commented Nov 19, 2024

  • Add solution to PulsarMockBookKeeper for intercepting reads
  • Add validation to getManagedLedgerMaxReadsInFlightSizeInMB
  • Don't divide by 0 if it can be avoided
  • Estimate entry size for InflightReadsLimiter by keeping stats
  • Limit replay messages by bytes size
  • Test limiting by bytes size
  • Test
  • Avoid exception which commonly happens
  • Add debug logging to InflightReadsLimiter
  • Clear the cache in the test
  • Add logging
  • Fix read limits for individual reads
  • Revert "Test"
  • Reduce timeout
  • Apply cap for delayed messages too
  • Improve asyncReplayEntries
  • Refactor to have a single replay method
  • Optimize filtering deleted messages
  • deprecate synchronous replayEntries method
  • move asyncReplayEntries without sortEntries as a default method
  • Perform replay reads in ranges
  • Make test to fail
  • Fix disabled timeout in InflightReadsLimiter
  • Add queuing to InflightReadsLimiter when the limit is reached
  • revisit
  • Ensure that cached entry readerIndex is not tied to the original one
  • Adjust InflightReadsLimiterTest
  • Add timeout executor to InflightReadsLimiter
  • Polish
  • Fix test
  • Instantiate ArrayList directly
  • Support caching replayed entries
  • Start addressing the removal issue with a removal queue
  • Move EntryWrapper to upper level
  • Move RangeCache to cache package
  • Start adding removal queue
  • Move towards adding removal queue changes
  • More moves towards removal queue solution
  • Handle removing by size in scheduled task so that blocking would be rare
  • Remove unused code
  • Update RangeCacheTest with removal queue
  • Fix imports
  • Add license headers
  • Handle all cache evictions by the same thread
  • Move RangeCacheRemovalCounters to top level
  • Use removal queue in RangeCacheTest
  • Handle eviction
  • Handle adding atomically to removal queue and cache
  • Improve javadoc
  • Use unbounded queue for removal queue since cache size is bounded by size
  • Refactor eviction when cache size exceeds evictionTriggerThreshold
  • Start adding cacheEvictionByExpectedReadCount
  • Add CachedEntry
  • Activate cursor when consumers disconnect and connect
  • disable checkCursorsToCacheEntries when eviction by read count is enabled
  • Always keep cursors with connected consumers in "active" state when eviction is based on expected read count
  • Add a way to find cursors before current cursor
  • Pass predicate for deciding whether to cache or not
  • Reduce coupling to EntryImpl
  • Extract abstract base class to be used for Entry implementations
  • Introduce CachedEntry for eviction by read count implementation
  • Remove generics type parameters from RangeCache since there's no need to reuse the class with different types
  • Add TODO about the solution for handling skipping of the entries
  • Add note of replacing the use of peek
  • update design
  • Evaluate entry size when it gets added
  • Fix issue in getting the entry
  • Fix RangeCacheTest
  • Remove generics
  • Add simple stash
  • Add note
  • Fix test that expects old defaults
  • Adapt test to new behavior
  • Improve removal queue
  • Fix EntryCacheManagerTest
  • Support configuring ManagedLedgerConfig defaults for tests
  • Fix ManagedLedgerTests
  • Use waitForPendingCacheEvictions in EntryCacheManagerTest
  • Use Double.NaN instead of Double.POSITIVE_INFINITY
  • Start adding expected read count solution
  • Improve ManagedCursorContainerTest
  • Implement getNumberOfCursorsAtSamePositionOrBefore
  • Implement EntryReadCountHandler

lhotari and others added 30 commits November 29, 2024 10:57
…ther users have published TXN messages in before. (apache#23210)

[improve] [pip] PIP-373: Add a topic's system prop that indicates whether users have published TXN messages in before. (apache#23210)
This reverts commit 3ae9991.
@lhotari lhotari force-pushed the lh-fix-individual-read-deduplication-and-limiting branch from 46dbb23 to f58ad8c Compare December 2, 2024 11:31
@github-actions github-actions bot added the PIP label Dec 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants